data segment
	string1 db 20,?,20 dup('$')
	string2 db 20,?,20 dup('$')
	string3 db 'MATCH$'
	String4 db 'NO MATCH$'
	len1 equ $ - string1
	len2 equ $ - string2
data ends
code segment			;定义代码段
;----------------------------------------------------------------
main	proc	far		;子程序方式定义主程序
		assume	cs:code,ds:data
start:					;标志程序开始执行地址
;设定返回堆栈
		push	ds		;数据段地址入栈
		sub	ax,ax		;ax清零
		push	ax		;0入栈
;设置段寄存器DS
		mov	ax,data		;数据段地址送ax
		mov	ds,ax		;存入ds
;这里是编写的主程序
		cld
		
		lea dx,string1
		mov ah,10
		int 21h

		lea dx,string2
		mov ah,10
		int 21h

		sub bx,bx
		mov si,offset string1
		mov di,offset string2
		sub si,1
		sub di,1
		mov bx,len1
		cmp bx,len2
		jnz No_Match
		mov cx,len1
	Compare:	
		sub cx,1
		je Match
		inc si
		inc di
		mov dl,[si]
		cmp dl,[di]
		je Compare
	No_Match:	
		mov dx,offset string4
    	mov ah,9 		;调用dos 9号功能号输出字符串,以$结束
    	int 21h
		ret
	Match:		
		mov dx,offset string3
    	mov ah,9 		;调用dos 9号功能号输出字符串,以$结束
    	int 21h
		ret				;返回DOS
main	endp			;主程序结束
;----------------------------------------------------------------
code ends
	end start
